#pragma once

//color defines
//* color by byte w/ alpha to be set
//* color by byte w/ alpha set to 0xff
//* color by percentage w/ alpha to be set
//* color by percentage w/ alpha set to 1
#define CL_ABYTE(a,r,g,b) ((a<<24)|(r<<16)|(g<<8)|(b))
#define CL_XBYTE(r,g,b) CL_ABYTE(0xff,r,g,b)
#define CL_APERC(a,r,g,b) CL_ABYTE((int)(255*a),(int)(255*r),(int)(255*g),(int)(255*b))
#define CL_XPERC(r,g,b) CL_APERC(1,r,g,b)

//predefine color
enum CL_COLOR
{
	CL_BLACK   = CL_XPERC(0,0,0),
	CL_WHITE   = CL_XPERC(1,1,1),
	CL_RED     = CL_XPERC(1,0,0),
	CL_GREEN   = CL_XPERC(0,1,0),
	CL_BLUE    = CL_XPERC(0,0,1),
	CL_YELLOW  = CL_XPERC(1,1,0),
	CL_MAGENTA = CL_XPERC(1,0,1),
	CL_CYAN    = CL_XPERC(0,1,1),

	CL_GRAY9   = CL_XPERC(0.9f,0.9f,0.9f),
	CL_GRAY8   = CL_XPERC(0.8f,0.8f,0.8f),
	CL_GRAY7   = CL_XPERC(0.7f,0.7f,0.7f),
	CL_GRAY6   = CL_XPERC(0.6f,0.6f,0.6f),
	CL_GRAY5   = CL_XPERC(0.5f,0.5f,0.5f),
	CL_GRAY4   = CL_XPERC(0.4f,0.4f,0.4f),
	CL_GRAY3   = CL_XPERC(0.3f,0.3f,0.3f),
	CL_GRAY2   = CL_XPERC(0.2f,0.2f,0.2f),
	CL_GRAY1   = CL_XPERC(0.1f,0.1f,0.1f),
};